package com.evangelion.core.bean;


import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Cacheable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;



/**
 * Date: 2/23/14
 */
@Entity
@Cacheable(false)
@Table(name = "usuario_reportes")
public class UsuarioReporte implements Serializable {

    private Integer id;
    private String nameReporte;
    private String reporteConfiguracion;
    private Usuario usuario;


    @Id
    @Column(name = "id", nullable = false, insertable = true, updatable = true)
    public Integer getId() {
        return id;
    }


    public void setId(Integer id) {
        this.id = id;
    }


    @Basic
    @Column(name = "name_reporte", nullable = true, insertable = true, updatable = true, length = 50)
    public String getNameReporte() {
        return nameReporte;
    }


    public void setNameReporte(String nameReporte) {
        this.nameReporte = nameReporte;
    }


    @Basic
    @Column(name = "reporte_configuracion", nullable = true, insertable = true, updatable = true, length = 20000)
    public String getReporteConfiguracion() {
        return reporteConfiguracion;
    }


    public void setReporteConfiguracion(String reporteConfiguracion) {
        this.reporteConfiguracion = reporteConfiguracion;
    }


    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        UsuarioReporte that = (UsuarioReporte) o;

        if (id != null ? !id.equals(that.id) : that.id != null) {
            return false;
        }
        if (nameReporte != null ? !nameReporte.equals(that.nameReporte) : that.nameReporte != null) {
            return false;
        }
        if (reporteConfiguracion != null ? !reporteConfiguracion.equals(that.reporteConfiguracion) : that.reporteConfiguracion != null) {
            return false;
        }

        return true;
    }


    @Override
    public int hashCode() {
        int result = id != null ? id.hashCode() : 0;
        result = 31 * result + (nameReporte != null ? nameReporte.hashCode() : 0);
        result = 31 * result + (reporteConfiguracion != null ? reporteConfiguracion.hashCode() : 0);
        return result;
    }


    @ManyToOne
    @JoinColumn(name = "id_usuario", referencedColumnName = "id")
    public Usuario getUsuario() {
        return usuario;
    }


    public void setUsuario(Usuario usuariosByIdUsuario) {
        this.usuario = usuariosByIdUsuario;
    }
}
